package com.pac.questionnaire.service.impl;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.common.util.ErrorNumber;
import com.common.util.LogicException;
import com.pac.questionnaire.bean.QuestionnaireHospitalBean;
import com.pac.questionnaire.dao.QuestionnaireHospitalDao;
import com.pac.questionnaire.service.QuestionnaireHospitalService;

/**
 * 问卷医院Service
 * 
 * @author lujun.chen
 * @version [版本号, 2015年10月27日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Service(value = "questionnaireHospitalService")
public class QuestionnaireHospitalServiceImpl implements
		QuestionnaireHospitalService {

	private static Logger logger = Logger
			.getLogger(QuestionnaireHospitalServiceImpl.class);

	@Autowired
	private QuestionnaireHospitalDao questionnaireHospitalDao;

	@Override
	@Transactional(propagation = Propagation.REQUIRED)
	public String addQuestionnaireHospital(
			QuestionnaireHospitalBean questionnaireHospitalBean) {
		return questionnaireHospitalDao
				.addQuestionnaireHospital(questionnaireHospitalBean);
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED)
	public boolean delQuestionnaireHospital(
			QuestionnaireHospitalBean questionnaireHospitalBean) {
		return questionnaireHospitalDao
				.delQuestionnaireHospital(questionnaireHospitalBean);
	}

	@Override
	public List<QuestionnaireHospitalBean> queryQuestionnaireHospital(
			QuestionnaireHospitalBean questionnaireHospitalBean) {
		return questionnaireHospitalDao
				.queryQuestionnaireHospital(questionnaireHospitalBean);
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED)
	public boolean checkHospital(String questionnaireId, String memberIds) {
		if (StringUtils.isEmpty(questionnaireId)) {
			logger.error("选择医院出错，问卷ID为空");
			throw new LogicException(ErrorNumber.PARAM_IS_NULL, "问卷ID为空");
		}

		// 先删除原来的选择的医院
		QuestionnaireHospitalBean questionnaireHospitalD = new QuestionnaireHospitalBean();
		questionnaireHospitalD.setQuestionnaireId(questionnaireId);
		questionnaireHospitalDao
				.delQuestionnaireHospital(questionnaireHospitalD);

		// 添加新选择的医院
		if (!StringUtils.isEmpty(memberIds)) {
			String[] hospitalIdArr = memberIds.split(",");
			for (String hospitalId : hospitalIdArr) {
				QuestionnaireHospitalBean questionnaireHospitalBean = new QuestionnaireHospitalBean();
				questionnaireHospitalBean.setHospitalId(hospitalId);
				questionnaireHospitalBean.setQuestionnaireId(questionnaireId);
				questionnaireHospitalDao
						.addQuestionnaireHospital(questionnaireHospitalBean);
			}
		}

		return true;
	}

}
